#include<io.h> требуется только для объявления функции int read(handle, buffer,count) int handle; handle-р, ссылающийся на открытый файла char *buffer; память для хранения данных unsigned int count; максимальное количество байтов
Описание.
Функция read позволяет читать байты count из файла, связанного с handle , в буфер buffer . Операции чтения начинаются с теку щей позиции указателя на файл, который соответствует данному файлу. После выполнения операции чтения этот указатель устанавливается на следующий непрочитанный символ.
Возвращаемое значение.
Функция read возвращает число действительно прочитанных байтов, которое может быть меньше, чем count . Возвращаемое значение 0 указывает на попытку чтения конца файла, а 1 свидетельствует об ошибке; в этих случаях errno устанавливается в значение, которое описано ниже.
Величина Смысловое значение EBADF заданный handle неверный, или файл не яв- ляется открытым для чтения, или же файл заблокирован (закрыт). (Версия MS DOS 3.0 и последующие).
Если прочитано больше 32К (максимальный размер типа int ) из файла, возвращаемое значение будет типа unsigned int (см.пример, приведенный ниже). Однако максимальное число байтов, которое можно прочитать из файла, равно 65534; поскольку 65534 (или OXFFFF) является неотличимым от -1, поэтому будет возвращена ошибка. Если файл открыт в текстовом режиме, возвращаемое значение может не соответствовать числу действительно прочитанных байтов. Если текстовый режим эффективен, каждая пара "ВК-ПС" заменяется символом ПС.
Замечание:
В MS DOS , когда файл открыт в текстовом режиме, символ трактуется как индикатор конца файла. Если встречается CONTROLL-Z , чтение оканчивается и при следующем чтении возвращается 0 байтов. Индикатор конца файла может воспрепятствовать очистке файла.
Пример:
#include <io.h> #include <stdio.h> #include <fcntl.h> char buffer [60000] main () { int fh; unsigned int nbytes=60000, bytesread; if ((fn=open("c:/data/conf.dat",O_RDONLY))==-1) { perror("open failed on input file"); exit (1); } if ((bytesread=read(fh,buffer,nbytes))==-1) perror(""); else printf("Read %u bytes from file\n",bytesread); . . . }